package com.zzuli.yxy.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zzuli.yxy.entity.Album;
import com.zzuli.yxy.entity.Singer;
import com.zzuli.yxy.entity.Song;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * @auther pony
 * @create 2023-04-04 12:40
 */
@Mapper
public interface SongMapper extends BaseMapper<Song> {
    /**
     * 为 歌曲添加歌手
     * @param songId 待添加的歌曲id
     * @param singerId 添加的歌手id
     * @return
     */
    Integer addSingerForSong(Integer songId, Integer singerId);

    /**
     * 为 歌曲添加专辑
     * @param songId 待添加的歌曲id
     * @param albumId 添加的专辑id
     * @return
     */
    Integer addAlbumForSong(Integer songId, Integer albumId);

    /**
     * 根据歌曲 id 查询 状态正常的 歌手信息
     * @param songId 歌曲 id
     * @return
     */
    List<Singer> selectSingerBySongId(Integer songId);


    /**
     * 根据歌曲 id 查询 状态正常的 专辑信息
     * @param songId 歌曲 id
     * @return
     */
    Album selectAlbumBySongId(Integer songId);

    /**
     * 根据歌曲 id 删除 歌曲和歌手的关联信息
     * @param songId 歌曲 id
     * @return
     */
    Integer deleteSingerBySongId(Integer songId);

    /**
     * 根据歌曲 id 删除 歌曲和专辑的关联信息
     * @param songId 歌曲 id
     * @return
     */
    Integer deleteAlbumBySongId(Integer songId);
}
